home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disk User Volume 3 #6 / Commodore_Disk_User_Vol.3_6_1990_-.d64 / hi-lite bars (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  6KB  |  248 lines

  1. 10 rem  ******************************
  2. 20 rem  *                            *
  3. 30 rem  *   hilite bar menu maker    *
  4. 40 rem  *           by               *
  5. 50 rem  *           bones            *
  6. 60 rem  *                            *
  7. 70 rem  ******************************
  8. 80 :
  9. 90 :
  10. 100 rem ******************************
  11. 110 rem *         menu lists         *
  12. 120 rem ******************************
  13. 130 :
  14. 140 :
  15. 150 rem   ****----menu one----****
  16. 160 :
  17. 170 :
  18. 180 mi$(0)= " [209]   goto second menu    [209] "
  19. 190 mi$(1)= " [209]   menu option two     [209] "
  20. 200 mi$(2)= " [209]   menu option three   [209] "
  21. 210 mi$(3)= " [209]   menu option four    [209] "
  22. 220 mi$(4)= " [209]       end demo        [209] "
  23. 224 :
  24. 225 rem   ****----menu two----****
  25. 226 :
  26. 227 :
  27. 230 mi$(5)= " [209]   goto third menu     [209] "
  28. 240 mi$(6)= " [209]   another option      [209] "
  29. 250 mi$(7)= " [209]  opting back to one   [209] "
  30. 254 :
  31. 255 rem   ****----menu three----****
  32. 256 :
  33. 257 :
  34. 260 mi$(8)=" [209] more option adventures  [209] "
  35. 270 mi$(9)=" [209] almost the last option  [209] "
  36. 280 mi$(10)=" [209]   getting back to two   [209] "
  37. 290 :
  38. 295 :
  39. 300 rem  ****************************
  40. 310 rem  **  more useful strings   **
  41. 320 rem  ****************************
  42. 325 :
  43. 330 :
  44. 340 nul$="                                       "
  45. 350 yn$="   <<  are you sure [y/n] ? >>"
  46. 360 sk$="     << strike any key or fire >>"
  47. 390 :
  48. 395 :
  49. 400 rem  ****************************
  50. 410 rem  **   main loop and exit   **
  51. 420 rem  ****************************
  52. 425 :
  53. 430 bo=53281:pokebo,6:ba=bo-1:pokeba,6:print"[147][154]"
  54. 436 :
  55. 440 gosub 60500:rem print bottom panel
  56. 445 :
  57. 450 gosub 1000:rem first menu
  58. 455 :
  59. 460 ifqthen480:rem quit program
  60. 465 :
  61. 470 goto440:rem back to start
  62. 475 :
  63. 480 print"[147]"yn$
  64. 485 :
  65. 490 gosub60320:rem get keyin
  66. 495 :
  67. 500 ifch=89then530rem yes - quit
  68. 505 :
  69. 510 ifch=78then440:rem no - don't quit
  70. 515 :
  71. 520 goto490:rem no keypress
  72. 525 :
  73. 530 sys64738:rem reset computer
  74. 535 :
  75. 990 :
  76. 991 rem  *****************************
  77. 992 rem  **      menu actions       **
  78. 993 rem  *****************************
  79. 994 :
  80. 995 :
  81. 997 rem  ****----menu #1----****
  82. 998 :
  83. 999 :
  84. 1000 m1=4:rem maximum menu entry
  85. 1010 m2=0:rem minimum menu entry
  86. 1020 gosub 60000:rem menu creator
  87. 1030 if m=5 then q=1:return:rem quit
  88. 1040 on m gosub 1500,3000,4000,4500
  89. 1050 gosub 60500:goto1000:rem print panel and menu loop
  90. 1494 :
  91. 1495 :
  92. 1497 rem  ****----menu #2----****
  93. 1498 :
  94. 1499 :
  95. 1500 gosub60500:m1=7:rem maximum menu entry
  96. 1510 m2=5:rem minimum menu entry
  97. 1520 gosub 60000:rem menu creator
  98. 1530 if m=8 then return:rem back to 1
  99. 1540 on m-m2 gosub 2000,5000
  100. 1550 goto1500:rem print panel and menu loop
  101. 1994 :
  102. 1995 :
  103. 1997 rem  ****----menu #3----****
  104. 1998 :
  105. 1999 :
  106. 2000 gosub60500:m1=10:rem maximum menu entry
  107. 2010 m2=8:rem minimum menu entry
  108. 2020 gosub 60000:rem menu creator
  109. 2030 if m=11 then return:rem back to 2
  110. 2040 on m-m2 gosub 6000,7000
  111. 2050 goto2000:rem print panel and menu loop
  112. 2990 :
  113. 2991 :
  114. 2992 rem  ****************************
  115. 2993 rem  **   subroutines called   **
  116. 2994 rem  **        menu's          **
  117. 2995 rem  ****************************
  118. 3000 :
  119. 3010 :
  120. 3020 pokebo,0:pokeba,0:print"[147][156] this is option two!!!"
  121. 3030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
  122. 4000 :
  123. 4010 :
  124. 4020 pokebo,2:pokeba,2:print"[147][150] this is option three!!"
  125. 4030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
  126. 4500 :
  127. 4510 :
  128. 4520 pokebo,10:pokeba,10:print"[147][149] this is option four!!"
  129. 4530 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
  130. 5000 :
  131. 5010 :
  132. 5020 pokebo,14:pokeba,14:print"[147] this is another option !!"
  133. 5030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
  134. 6000 :
  135. 6010 :
  136. 6020 pokebo,1:pokeba,1:print"[147][144] more optional adventures!!"
  137. 6030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
  138. 7000 :
  139. 7010 :
  140. 7020 pokebo,5:pokeba,5:print"[147][153] almost the last option!!"
  141. 7030 printsk$:gosub60320:pokebo,6:pokeba,6:print"[154]":return
  142. 59985 :
  143. 59986 :
  144. 59990 rem  *****************************
  145. 59991 rem  *                           *
  146. 59992 rem  *     menu & hilite bar     *
  147. 59993 rem  *           print           *
  148. 59994 rem  *                           *
  149. 59995 rem  *  delete all remarks and   *
  150. 59996 rem  *   crunch down commands    *
  151. 59997 rem  *                           *
  152. 59998 rem  *****************************
  153. 59999 :
  154. 60000 ln=214:rem curser physical line number
  155. 60005 :
  156. 60010 cb=198:rem no. characters in buffer
  157. 60015 :
  158. 60020 mm=m1:rem transfer maximum menu items
  159. 60025 :
  160. 60030 mn=m2:rem transfer minimum menu items
  161. 60035 :
  162. 60040 print"":rem home curser (x=0:y=0)
  163. 60045 :
  164. 60050 for c = m2 to m1:rem setting up menu parameters
  165. 60055 :
  166. 60060 print"";mi$(c):rem print menu item
  167. 60065 :
  168. 60070 next:rem   do loop until all menu items are printed
  169. 60075 :
  170. 60080 pokeln,0:rem clear keyboard buffer
  171. 60085 :
  172. 60090 rb=mn:cl=mn:rem setting bar/clear to minimum menu item
  173. 60095 :
  174. 60100 gosub 60260:rem do reverse bar print
  175. 60105 :
  176. 60110 for re = 0 to 1 step 0:rem settup first loop
  177. 60115 :
  178. 60120 gosub 60320:rem get joystick/keyboard input
  179. 60125 :
  180. 60130 c1=cl:r1=rb:rem settup test values
  181. 60135 :
  182. 60140 for y = 0 to 1 step 0:rem settup second loop
  183. 60145 :
  184. 60150 rem testing joystick/keyboard input
  185. 60155 :
  186. 60160 ifch=17thenrb=rb+1:ifrb=mm+1thenrb=mn:rem test if beyond last menu item
  187. 60165 :
  188. 60170 ifch=145thenrb=rb-1:ifrb=mn-1thenrb=mm:rem test if before first menu item
  189. 60175 :
  190. 60180 ifch=13thenre=1:rem test if fire/return is selected
  191. 60185 :
  192. 60190 if mi$<>nul$theny=1:rem test if menu item is empty string
  193. 60195 :
  194. 60200 next y:rem do to end of inner loop
  195. 60205 :
  196. 60210 if (c1<>cl) or (r1<> rb) then gosub 60240:rem run test for reverse/clear
  197. 60215 :
  198. 60220 next re:rem do to end of outer loop
  199. 60225 :
  200. 60230 goto 60290:rem assign value of menu line
  201. 60235 :
  202. 60240 poke ln,r1-mn:rem move cursor to correct position
  203. 60245 :
  204. 60250 print"";mi$(r1):rem print clear menu item
  205. 60255 :
  206. 60260 pokeln,rb-mn:rem move cursor to correct position
  207. 60265 :
  208. 60270 print"";mi$(rb):rem print reverse menu item
  209. 60275 :
  210. 60280 goto60300
  211. 60285 :
  212. 60290 m=rb+1:rem assing item number to variable m
  213. 60295 :
  214. 60300 return
  215. 60305 :
  216. 60306 rem **************************
  217. 60310 rem *** get inkey/joystick ***
  218. 60311 rem **************************
  219. 60315 :
  220. 60320 ch=0:geta$:ifa$<>""thench=asc(a$):return:rem if a key is pressed - get it
  221. 60325 :
  222. 60330 j=peek(56320):rem joystick port2
  223. 60335 :
  224. 60340 ifj=126thench=145:return:rem up
  225. 60345 :
  226. 60350 ifj=125thench=17:return:rem down
  227. 60355 :
  228. 60360 ifj=111thench=13:return:rem fire
  229. 60365 :
  230. 60370 goto60320:rem nothing, so keep checking!
  231. 60494 :
  232. 60495 :
  233. 60496 rem   *****************
  234. 60497 rem   ** cursor plot **
  235. 60498 rem   *****************
  236. 60499 :
  237. 60500 print"[147]":poke781,20:poke782,0:sys65520
  238. 60501 :
  239. 60502 :
  240. 60503 rem   ******************
  241. 60504 rem   ** bottom panel **
  242. 60505 rem   ******************
  243. 60510 print"[153] [213][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][185][162][201]"
  244. 60520 print" [221][169][223][146]                                 [221]"
  245. 60530 print" <cursor/joystick>-------<return/fire>"
  246. 60540 print"     [223][169][154]"
  247. 60550 return
  248.